/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.bancofloripa.dao;

import br.com.bancofloripa.exception.MensagemExceptionDAO;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author fabianoc
 */
public class BaseDao {
    
    Properties parametrosConexao = new Properties();
    
    final private String DRIVER = "com.mysql.jdbc.Driver";
    private String usuario;
    private String senha;
    private String url;
    
    public ResultSet resultset;
    
    /**
     * 
     * @return Connection
     *      retorna uma conexao ao banco de dados
     * @throws MensagemExceptionDAO 
     *      lança mensagens de erros qdo encontradas
     */
    
    public Connection getConexaoBD() throws MensagemExceptionDAO   {
        
    FileOutputStream fos = null;    
    InputStream is = null;
    try {
        File f = new File("conect.properties");
        if  ( !f.exists() ) {
            f.createNewFile();
            parametrosConexao.setProperty("url", "jdbc:mysql://192.168.1.5:3306/bancofloripa"); 
            parametrosConexao.setProperty("usuario", "banco");
            parametrosConexao.setProperty("senha", "banco");
            fos = new FileOutputStream("conect.properties");
            parametrosConexao.store(fos, "ARQUIVO DE PROPRIEDADES DE CONEXÃO:");
            fos.close();
        }   
            
        is = new FileInputStream(f);
        parametrosConexao.load(is);
        url = parametrosConexao.getProperty("url");
        usuario = parametrosConexao.getProperty("usuario");
        senha = parametrosConexao.getProperty("senha");
        Class.forName(DRIVER);
        return DriverManager.getConnection(url,usuario,senha);
        
    } catch (SQLException ex) {
        throw new MensagemExceptionDAO("Erro ao tentar conectar ao BD "+ex.getMessage());
    } catch (IOException ex) {
        throw new MensagemExceptionDAO("Erro ao tentar acessar o arquivo "+ex.getMessage());
    } catch (ClassNotFoundException ex)  {
        throw new MensagemExceptionDAO("Classe nao encontrada "+ex.getMessage());
    } 
//    finally{
//            try {
//                fos.close();
//                is.close();
//            } catch (IOException ex) {
//                throw new MensagemExceptionDAO("Erro ao tentar acessar o arquivo "+ex.getMessage());
//            }
//    }
      
    }
    
    
    /**
     * 
     * @param ps
     *        recebe um preparedStatement a ser fechado
     * @param c 
     *        a conexao a ser fechada  
     */
    public void closeConnection( PreparedStatement ps, Connection c ){
        //System.out.println ("URL : " + urlAtual);
        try {
                if ( ps != null )
                    ps.close();
                if ( c != null )
                    c.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
    }
    
    
}
